#include <header.h>
#include <ctype.h>


typedef enum{
    cd,
    ls,
    upload,
    download,
    rm,
    pwd,
    create_dir,
    login,
    regis
}CMD;

// 维护客户端的状态
typedef struct client_status_s{
    int socket_fd; // socket文件描述符
    int login_status; // 登录状态
    char user[60]; // 用户名
    char password[60]; // 密码
    char path[100]; // 当前路径
    char runtime_cmd[100]; //当前要执行的命令 
}client_status_t;                   

typedef struct self_defined_pro_s{
    int cmd;
    int para_num;
    int message_len;
    char message[1024];
}self_defined_pro_t;

//实现cd
int do_cd(client_status_t *client);

//实现remove
int do_rm(client_status_t *client);

//实现ls
void do_ls(client_status_t *client_stat);

//实现pwd
void do_pwd(client_status_t *client_stat);

//实现upload
int do_upload(client_status_t *status);

//实现download
int do_download(client_status_t *cs);

//实现mkdir
int create_directory(client_status_t *status);
int do_mkdir(client_status_t *status);

int do_login(client_status_t *status);

int do_register(client_status_t *status);


//读取配置文件
void read_log_file(char *ip,char *port);

// 初始化message结构体
void init_self_defined_pro(self_defined_pro_t *protect);

// 初始化客户端的状态的结构体
void init_client_status(client_status_t *client_stat);

// 登录函数
int menu_client(client_status_t *login);

